package project;

import oracle.kv.KVStore;
/**
 * la classe d'application
 * */
public class Application extends Thread {
	// la cle de produit qui est manipule
	private int keyProduit;
	// le temps d'attente
	private long waitTime;
	// les references de kvstore
	private KVStore[] stores;

	/**
	 * Constructeur
	 * */
	public Application(KVStore[] stores, int keyProduit) {
		super();
		this.keyProduit = keyProduit;
		this.stores = stores;
	}

	public int getKeyProduit() {
		return keyProduit;
	}

	public void setKeyProduit(int keyProduit) {
		this.keyProduit = keyProduit;
	}

	public long getWaitTime() {
		return waitTime;
	}

	public void setWaitTime(long waitTime) {
		this.waitTime = waitTime;
	}

	/**
	 * execute les transactions
	 * */
	@Override
	public void run() {
		// creer un objet de transaction
		Transaction transaction = new Transaction(stores);
		// temps l'attente
		this.waitTime = transaction.A(keyProduit);
		System.out.println("Wait time " + "A(k" + this.keyProduit + ")" + ": "
				+ this.waitTime + " ms");
	}
}
